#test-controler MAKEFILE

####################
#Compilation options
####################

#Compiler
CC = gcc

#Other options, here, show warning and ansi mode
OPT = -Wall -ansi -g

#Assemble
ASS=-c

#Link
LINK=-o


######
#Quick make
######

#nom module
MOD_NAME = controler

#############
#package info
#############


#nom exécutable
EXENAME = test_$(MOD_NAME)

#############
#fichier test
#nom du fichier test
TEST = test_$(MOD_NAME).c
#nom du fichier assemblage du fichier testé
TEST_ASS = test_$(MOD_NAME).o
############

############
#module testé

#prog directory
PROG_DIR = ../../$(MOD_NAME)/

#nom du module du fichier testé
HEADER = $(PROG_DIR)$(MOD_NAME).h
#nom du corps du fichier testé
BODY = $(PROG_DIR)$(MOD_NAME).c
#nom du fichier assemblage du fichier testé
MOD_ASS = $(MOD_NAME).o
#############

#############
#module importé
I_MOD_NAME = personne
#dir du module importé
I_DIR = ../../lib/$(I_MOD_NAME)/
#header du module importé
I_HEADER =$(I_DIR)$(I_MOD_NAME).h
#corps du module importé
I_BODY =$(I_DIR)$(I_MOD_NAME).c
#nom du fichier assemblage du module importé
I_MOD_ASS = $(I_MOD_NAME).o

#############
#module importé2
I_MOD_NAME2 = graph
#dir du module importé
I_DIR2 = ../../lib/$(I_MOD_NAME2)/
#header du module importé
I_HEADER2 =$(I_DIR2)$(I_MOD_NAME2).h
#corps du module importé
I_BODY2 =$(I_DIR2)$(I_MOD_NAME2).c
#nom du fichier assemblage du module importé
I_MOD_ASS2 = $(I_MOD_NAME2).o
#############

#############
#module importé3
I_MOD_NAME3 = entree
#dir du module importé
I_DIR3 = ../../lib/$(I_MOD_NAME3)/
#header du module importé
I_HEADER3 =$(I_DIR3)$(I_MOD_NAME3).h
#corps du module importé
I_BODY3 =$(I_DIR3)$(I_MOD_NAME3).c
#nom du fichier assemblage du module importé
I_MOD_ASS3 = $(I_MOD_NAME3).o
#############

#############
#module importé4
I_MOD_NAME4 = liste
#dir du module importé
I_DIR4 = ../../lib/$(I_MOD_NAME4)/
#header du module importé
I_HEADER4 =$(I_DIR4)$(I_MOD_NAME4).h
#corps du module importé
I_BODY4 =$(I_DIR4)$(I_MOD_NAME4).c
#nom du fichier assemblage du module importé
I_MOD_ASS4 = $(I_MOD_NAME4).o
#############

#############
#module importé5
I_MOD_NAME5 = algo
#dir du module importé
I_DIR5 = ../../controler/
#header du module importé
I_HEADER5 =$(I_DIR5)$(I_MOD_NAME5).h
#corps du module importé
I_BODY5 =$(I_DIR5)$(I_MOD_NAME5).c
#nom du fichier assemblage du module importé
I_MOD_ASS5 = $(I_MOD_NAME5).o
#############

#############
#module importé6
I_MOD_NAME6 = sortie
#dir du module importé
I_DIR6 = ../../lib/$(I_MOD_NAME6)/
#header du module importé
I_HEADER6 =$(I_DIR6)$(I_MOD_NAME6).h
#corps du module importé
I_BODY6 =$(I_DIR6)$(I_MOD_NAME6).c
#nom du fichier assemblage du module importé
I_MOD_ASS6 = $(I_MOD_NAME6).o
#############


#fichiers assemblage
TEST_ASS_LIST = $(TEST_ASS) $(MOD_ASS) $(I_MOD_ASS) $(I_MOD_ASS2) $(I_MOD_ASS3) $(I_MOD_ASS4) $(I_MOD_ASS5) $(I_MOD_ASS6)

##Assemblage

$(EXENAME): $(TEST_ASS_LIST)
	$(CC) $(LINK) $(EXENAME) $(OPT) $(TEST_ASS_LIST)

$(TEST_ASS): $(TEST)
	$(CC) $(ASS) $(TEST)

$(MOD_ASS): $(BODY) $(HEADER)
	$(CC) $(ASS) $(BODY) $(HEADER)

$(I_MOD_ASS): $(I_BODY) $(I_HEADER)
	$(CC) $(ASS) $(I_BODY) $(I_HEADER)

$(I_MOD_ASS2): $(I_BODY2) $(I_HEADER2)
	$(CC) $(ASS) $(I_BODY2) $(I_HEADER2)


$(I_MOD_ASS3): $(I_BODY3) $(I_HEADER3)
	$(CC) $(ASS) $(I_BODY3) $(I_HEADER3)

$(I_MOD_ASS4): $(I_BODY4) $(I_HEADER4)
	$(CC) $(ASS) $(I_BODY4) $(I_HEADER4)

$(I_MOD_ASS5): $(I_BODY5) $(I_HEADER5)
	$(CC) $(ASS) $(I_BODY5) $(I_HEADER5)

$(I_MOD_ASS6): $(I_BODY6) $(I_HEADER6)
	$(CC) $(ASS) $(I_BODY6) $(I_HEADER6)


clean: rm *.o
